sf
String formatting library for node.js.
Installation
$ npm install sf
Quick Examples
var sf = require("sf");
sf("{who} has a {what}", { who: 'dog', what: 'tail' });
sf("{0} has a {1}", 'dog', 'tail');
sf("{0:#,##0.00}", 2123.1);
sf("{0,15:#,##0.00}", 2123.1);
sf("{a.b}", { a: { b: 'test' }});
sf("{a.z.c}", { a: { b: 'test' }});
sf("{a.?z.?c}", { a: { b: 'test' }});
sf("{a[0]}", { a: [ 'foo', 'bar' ]});
sf("{a[-1]}", { a: [ 'foo', 'bar' ]});
sf.log("{who} has a {what}", { who: 'dog', what: 'tail' });
sf("{0:^d 'Days,' h:mm:ss.fff}", new sf.TimeSpan(8173818181));
Format Specifiers
The format is similar to C#'s string.format. The text inside the curly braces is {indexOrName[,alignment][:formatString]}.
If alignment is positive the text is right aligned. If alignment is negative it will be left aligned.
Object
Specifier | Name |
---|
json | JSON.stringify |
inspect | util.inspect |
Numbers
Specifier | Name | Example | Output |
---|
0 | Zero placeholder | {0:00.0000} | 02.1200 |
# | Digit placeholder | {0:#,###} | 1,234 |
x | Lowercase hex | {0:x4} | 01fc |
X | Uppercase hex | {0:X4} | 01FC |
Dates
Specifier | Name | Example |
---|
sd | Short date | 10/12/2002 |
D | Long date | December 10, 2002 |
t | Short time | 10:11 PM |
T | Long time | 10:11:29 PM |
fdt | Full date & time | December 10, 2002 10:11 PM |
F | Full date & time (long) | December 10, 2002 10:11:29 PM |
g | Default date & time | 10/12/2002 10:11 PM |
G | Default date & time (long) | 10/12/2002 10:11:29 PM |
md | Month day pattern | December 10 |
r | RFC1123 date string | Tue, 10 Dec 2002 22:11:29 +0500 |
s | Sortable date string | 2002-12-10T22:11:29 |
d | Date single digit | 1 |
dd | Date leading zero | 01 |
ddd | Short day name | Mon |
dddd | Long day name | Monday |
f | Fraction of second (1 digit) | 1 |
ff | Fraction of second (2 digit) | 24 |
fff | Fraction of second (3 digit) | 345 |
h | Hour 12-hour format 1 digit | 5 |
hh | Hour 12-hour format 2 digits | 05 |
H | Hour 24-hour format 1 digit | 5 |
HH | Hour 24-hour format 2 digits | 05 |
mm | Minutes 2 digits | 23 |
M | Month single digit | 2 |
MM | Month leading zero | 02 |
MMM | Month short name | Feb |
MMMM | Month long name | February |
ss | Seconds 2 digits | 54 |
tt | AM/PM | AM |
yy | Year 2 digits | 12 |
yyyy | Year 4 digits | 2012 |
zz | Time zone offset | 05 |
+zz | Time zone offset leading + | +05 |
zzz | Time zone offset full | 05:00 |
zzzz | Time zone offset full | 0500 |
+zzzz | Time zone offset full leading + | +0500 |
sf.TimeSpan
Specifier | Name | Example |
---|
y | Years | 2 |
M | Months | 6 |
d | Days | 8 |
h | Hours | 10 |
m | Minutes | 15 |
s | Seconds | 5 |
f | Fraction of Seconds | 9 |
If you prefix the specifier with '^' you will get the total number of that value. For
example '^s' will output the total number of seconds in the time span. Where as 's' will
only output the number of seconds in a minute.
If you repeat characters the value will be prefixed with zeros.
sf.indent(str, options)
Helper function to word wrap and indent a string.
Arguments
- str - The string to indent and wrap.
- options
- prefix - The prefix to appear at the beginning of each new line.
- wordwrap - The maximum length of each line.
Helper Functions
- sf.log(formatString [, args...]);
- sf.info(formatString [, args...]);
- sf.warn(formatString [, args...]);
- sf.error(formatString [, args...]);